<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <input type="text" id="ipt" />
    <script>
      const oIpt = document.getElementById("ipt");

      //事件函数
      function center(e) {
        console.log("发送请求", this, e);
      }
      // 封装一个防抖函数
      function debounce(fn, time) {
        let timer = null;
        //内部返回的函数就是真正的事件函数
        return function (e) {
          //每次进入函数都要先清理掉一次定时器
          clearTimeout(timer);
          timer = setTimeout(() => {
            fn.call(this, e);
          }, time);
        };
      }
      oIpt.oninput = debounce(center, 500);
    </script>
  </body>
</html>
